package ink.lovejinhu.leetcode;

import ink.lovejinhu.common.TreeNode;

/**
 * @author jinhu
 * created 2021-06-25 14:28
 */
public class Solution_0111 {
    /**
     * 给定一个二叉树，找出其最小深度
     *最小深度是从根节点到最近叶子节点的最短路径上的节点数量
     * @param root
     * @return
     */
    public int minDepth(TreeNode root) {
        if (root==null){
            return 0;
        }
        int left=minDepth(root.left);  //左子树
        int right=minDepth(root.right);   //右子树
//        // null节点不参与比较
//        if (root.left == null && root.right != null) {
//            return 1 + minDepth(root.right);
//        }
//        // null节点不参与比较
//        if (root.right == null && root.left != null) {
//            return 1 + minDepth(root.left);
//        }
        //触发这个1+left+right的条件是左右子树有一个为null了
        return  left == 0 || right == 0 ? 1 + left + right : 1 + Math.min(left, right);
    }


}
